home *** CD-ROM | disk | FTP | other *** search
- package java.sql;
-
- import java.io.PrintStream;
- import java.io.PrintWriter;
- import java.security.AccessController;
- import java.util.Enumeration;
- import java.util.Properties;
- import java.util.Vector;
- import sun.security.action.GetPropertyAction;
-
- public class DriverManager {
- static final SQLPermission SET_LOG_PERMISSION = new SQLPermission("setLog");
- private static Vector writeDrivers = new Vector();
- private static Vector readDrivers = new Vector();
- private static int loginTimeout = 0;
- private static PrintWriter logWriter = null;
- private static PrintStream logStream = null;
- private static boolean initialized = false;
- private static Object logSync = new Object();
-
- public static PrintWriter getLogWriter() {
- return logWriter;
- }
-
- public static void setLogWriter(PrintWriter var0) {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- var1.checkPermission(SET_LOG_PERMISSION);
- }
-
- logStream = null;
- logWriter = var0;
- }
-
- public static Connection getConnection(String var0, Properties var1) throws SQLException {
- ClassLoader var2 = getCallerClassLoader();
- return getConnection(var0, var1, var2);
- }
-
- public static Connection getConnection(String var0, String var1, String var2) throws SQLException {
- Properties var3 = new Properties();
- ClassLoader var4 = getCallerClassLoader();
- if (var1 != null) {
- var3.put("user", var1);
- }
-
- if (var2 != null) {
- var3.put("password", var2);
- }
-
- return getConnection(var0, var3, var4);
- }
-
- public static Connection getConnection(String var0) throws SQLException {
- Properties var1 = new Properties();
- ClassLoader var2 = getCallerClassLoader();
- return getConnection(var0, var1, var2);
- }
-
- public static Driver getDriver(String var0) throws SQLException {
- Object var1 = null;
- println("DriverManager.getDriver(\"" + var0 + "\")");
- if (!initialized) {
- initialize();
- }
-
- Vector var8;
- synchronized(DriverManager.class) {
- var8 = readDrivers;
- }
-
- ClassLoader var9 = getCallerClassLoader();
-
- for(int var3 = 0; var3 < var8.size(); ++var3) {
- DriverInfo var4 = (DriverInfo)var8.elementAt(var3);
- if (getCallerClass(var9, var4.driverClassName) != var4.driverClass) {
- println(" skipping: " + var4);
- } else {
- try {
- println(" trying " + var4);
- if (var4.driver.acceptsURL(var0)) {
- println("getDriver returning " + var4);
- return var4.driver;
- }
- } catch (SQLException var6) {
- }
- }
- }
-
- println("getDriver: no suitable driver");
- throw new SQLException("No suitable driver", "08001");
- }
-
- public static synchronized void registerDriver(Driver var0) throws SQLException {
- if (!initialized) {
- initialize();
- }
-
- DriverInfo var1 = new DriverInfo();
- var1.driver = var0;
- var1.driverClass = var0.getClass();
- var1.driverClassName = var1.driverClass.getName();
- writeDrivers.addElement(var1);
- println("registerDriver: " + var1);
- readDrivers = (Vector)writeDrivers.clone();
- }
-
- public static synchronized void deregisterDriver(Driver var0) throws SQLException {
- ClassLoader var1 = getCallerClassLoader();
- println("DriverManager.deregisterDriver: " + var0);
- DriverInfo var3 = null;
-
- int var2;
- for(var2 = 0; var2 < writeDrivers.size(); ++var2) {
- var3 = (DriverInfo)writeDrivers.elementAt(var2);
- if (var3.driver == var0) {
- break;
- }
- }
-
- if (var2 >= writeDrivers.size()) {
- println(" couldn't find driver to unload");
- } else if (getCallerClass(var1, var3.driverClassName) != var3.driverClass) {
- throw new SecurityException();
- } else {
- writeDrivers.removeElementAt(var2);
- readDrivers = (Vector)writeDrivers.clone();
- }
- }
-
- public static Enumeration<Driver> getDrivers() {
- Vector var0 = new Vector();
- Object var1 = null;
- if (!initialized) {
- initialize();
- }
-
- Vector var6;
- synchronized(DriverManager.class) {
- var6 = readDrivers;
- }
-
- ClassLoader var7 = getCallerClassLoader();
-
- for(int var3 = 0; var3 < var6.size(); ++var3) {
- DriverInfo var4 = (DriverInfo)var6.elementAt(var3);
- if (getCallerClass(var7, var4.driverClassName) != var4.driverClass) {
- println(" skipping: " + var4);
- } else {
- var0.addElement(var4.driver);
- }
- }
-
- return var0.elements();
- }
-
- public static void setLoginTimeout(int var0) {
- loginTimeout = var0;
- }
-
- public static int getLoginTimeout() {
- return loginTimeout;
- }
-
- /** @deprecated */
- public static void setLogStream(PrintStream var0) {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- var1.checkPermission(SET_LOG_PERMISSION);
- }
-
- logStream = var0;
- if (var0 != null) {
- logWriter = new PrintWriter(var0);
- } else {
- logWriter = null;
- }
-
- }
-
- /** @deprecated */
- public static PrintStream getLogStream() {
- return logStream;
- }
-
- public static void println(String var0) {
- synchronized(logSync) {
- if (logWriter != null) {
- logWriter.println(var0);
- logWriter.flush();
- }
-
- }
- }
-
- private static Class getCallerClass(ClassLoader var0, String var1) {
- Object var2 = null;
-
- try {
- var5 = Class.forName(var1, true, var0);
- } catch (Exception var4) {
- var5 = null;
- }
-
- return var5;
- }
-
- private static void loadInitialDrivers() {
- String var0;
- try {
- var0 = (String)AccessController.doPrivileged(new GetPropertyAction("jdbc.drivers"));
- } catch (Exception var6) {
- var0 = null;
- }
-
- DriverService var1 = new DriverService();
- AccessController.doPrivileged(var1);
- println("DriverManager.initialize: jdbc.drivers = " + var0);
- if (var0 != null) {
- while(var0.length() != 0) {
- int var2 = var0.indexOf(58);
- String var3;
- if (var2 < 0) {
- var3 = var0;
- var0 = "";
- } else {
- var3 = var0.substring(0, var2);
- var0 = var0.substring(var2 + 1);
- }
-
- if (var3.length() != 0) {
- try {
- println("DriverManager.Initialize: loading " + var3);
- Class.forName(var3, true, ClassLoader.getSystemClassLoader());
- } catch (Exception var5) {
- println("DriverManager.Initialize: load failed: " + var5);
- }
- }
- }
-
- }
- }
-
- private static Connection getConnection(String var0, Properties var1, ClassLoader var2) throws SQLException {
- Object var3 = null;
- synchronized(DriverManager.class) {
- if (var2 == null) {
- var2 = Thread.currentThread().getContextClassLoader();
- }
- }
-
- if (var0 == null) {
- throw new SQLException("The url cannot be null", "08001");
- } else {
- println("DriverManager.getConnection(\"" + var0 + "\")");
- if (!initialized) {
- initialize();
- }
-
- Vector var11;
- synchronized(DriverManager.class) {
- var11 = readDrivers;
- }
-
- SQLException var13 = null;
-
- for(int var5 = 0; var5 < var11.size(); ++var5) {
- DriverInfo var6 = (DriverInfo)var11.elementAt(var5);
- if (getCallerClass(var2, var6.driverClassName) != var6.driverClass) {
- println(" skipping: " + var6);
- } else {
- try {
- println(" trying " + var6);
- Connection var7 = var6.driver.connect(var0, var1);
- if (var7 != null) {
- println("getConnection returning " + var6);
- return var7;
- }
- } catch (SQLException var9) {
- if (var13 == null) {
- var13 = var9;
- }
- }
- }
- }
-
- if (var13 != null) {
- println("getConnection failed: " + var13);
- throw var13;
- } else {
- println("getConnection: no suitable driver found for " + var0);
- throw new SQLException("No suitable driver found for " + var0, "08001");
- }
- }
- }
-
- static void initialize() {
- if (!initialized) {
- initialized = true;
- loadInitialDrivers();
- println("JDBC DriverManager initialized");
- }
- }
-
- private DriverManager() {
- }
-
- private static native ClassLoader getCallerClassLoader();
- }
-